package by.kniazhych.core.controllers {
	import by.kniazhych.core.data.game.GameData;
	import by.kniazhych.core.view.frames.GameFrameView;
	import flash.events.EventDispatcher;
	import flash.utils.Dictionary;
	
	/**
	 * ...
	 * @author Boutylin Mikhail
	 */
	
	
	[Event(name="actionProcessed", type="by.kniazhych.core.events.GameEvent")]
	public class AbstractServerAction extends EventDispatcher{
		
		protected var _target:GameController;
		
		public function AbstractServerAction(target:GameController) {
			_target = target;
		}
		
		//--------------------------------------------------------------------------
		//
		//  PUBLIC METHODS
		//
		//--------------------------------------------------------------------------
		
		public function process():void {
			
		}
		
		//--------------------------------------------------------------------------
		//
		//  PROTECTED METHODS
		//
		//--------------------------------------------------------------------------
		
		protected final function get _gameData():GameData {
			return _target.$gameData;
		}
		
		protected final function get _gameContainer():GameFrameView {
			return _target.$gameContainer;
		}
		
		protected final function get _peaceLinker():Dictionary {
			return _target.$peaceLinker;
		}
		
	}

}